package d7_homework.d1_homework.d3_thirdquestion;

import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Test01 {
    //1、创建一个存放User对象的HashSet集合, 为了保证User对象唯一
    private static Set<User> users = new HashSet<>();
    //2、创建一个扫描器
    private static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        //3、先进行封装一些用户数据
        Collections.addAll(users,
                new User("陈平安", "12345"),
                new User("宁姚", "123454"),
                new User("姬紫月", "12786"),
                new User("叶凡", "10976"));

        while (true) {
            //提示用户输入
            System.out.println("==========欢迎来到注册页面===========");
            System.out.println("请输入您用户名");
            String username = sc.next();
            //判断是用户名是否存在
            if (isUserName(username)){
                System.out.println("用户名已经存在,请您重新输入");
                continue;
            }
            //到了这里就证明用户名不存在,可以进行输入密码
            System.out.println("请输入您的密码");
            String password = sc.next();
            //进行确认密码
            System.out.println("请确认您的密码");
            String okPassWord = sc.next();
            //判断密码是否一致
            if (!password.equals(okPassWord)){
                System.out.println("您两次输入的密码不一致,请重新注册");
                continue;
            }
            //到这里就可以将用户信息封装到用户对象中
            if (registerUser(username,password)){
                System.out.println("恭喜您注册成功!");
            }

            System.out.println("欢迎来到登录界面");
            break;
        }

    }

    private static boolean registerUser(String username, String password) {
        //创建对象,对用户输入de数据进行封装
        //压到集合里面
        users.add(new User(username,password));
        return true;
    }

    private static boolean isUserName(String username) {
        //遍历user集合,获取每一位用户
        for (User user : users) {
            //判断
            if (user.getUserName().equals(username)){
                return true;
            }
        }
        return false;
    }
}
